/*
 *  include/clinux/config.h
 *
 *  last modified at 2007.07.15 by ChenJie
 *
 */

#ifndef CONFIG_H
#define CONFIG_H
/*
 *  内存使用图
 *  	 起始地址 ~ 结束地址  大小	说明
 *	0x00000000~0x00000FFF	4KB 	pg_dir
 *	0x00001000~0x00001FFF	4KB 	init_task 
 *	0x00002000~0x000027FF	2KB 	idt
 *	0x00002800~0x00002FFF	2KB 	gdt
 *	0x00003000~0x0007FFFF 500KB	kernel code, 
 *	0x00080000~0x0008FFFF  64KB	保留区域, 未分配
 *	0x00090000~0x000901FF 0.5KB	seutp 保存的参数区
 *	0x00090200~0x0009FFFF 63.5KB 	保留区域, 暂被分配为Task0用户态堆栈区
 *	0x000A0000~0x000FFFFF 384KB	BIOS保留区域, 只读区域
 *	0x00100000~0x03FFFFFF  63MB	原则上由mm负责管理
 *		1.物理内存线性映射页表贮存区
 *		2.物理内存分配表贮存区
 *
 */

//中断描述符表中描述符的个数：
#define NR_IDT_ENTRY		(256)
//全局描述符表中描述符的个数：
#define NR_GDT_ENTRY		(256)

//定义最大任务数量：
#define NR_TASKS		(64)
#define HZ			(100)
#define LATCH			(1193180/HZ)

//定义页面大小(B)
#define MM_PAGE_SIZE		(4096)

//定义cos所能管理的最大物理内存(B)
#define MM_MAX_MEMORY		(0x40000000)

//定义任务线性地址空间的分配(B)：
//从1GB~2GB
#define TASK_TEXT_START		(0x40000000)
#define TASK_TEXT_LIMIT		(0x40000000)
//从2GB~3GB
#define TASK_DATA_START		(0x80000000)
#define TASK_DATA_LIMIT		(0x40000000)
//从3GB~4GB
#define TASK_STACK_START	(0xC0000000)
#define TASK_STACK_LIMIT	(0x40000000)

//内核段限：
//640KB
#define TASK0_TEXT_LIMIT	(0xA0000)
#define TASK0_DATA_LIMIT	(0xA0000)
#define TASK0_STACK_LIMIT	(0xA0000)

#define TASK0_ESP		(0xA0000)

#endif //CONFIG_H
